package com.yinxin.wudasuanfa.sort;

import java.util.Arrays;

/**
 * @author yinxin
 * @version 1.0
 * @Description: 希尔排序（分组的插入排序）
 * @date 2022/4/1914:00
 */
public class ShellSort {
    public static void main(String[] args) {
        int[] arr=new int[]{2,3,1,6,9,5,90,26,25};
        shellSort(arr);
        System.out.println(Arrays.toString(arr));
    }
    public static void shellSort(int[] arr){
        for(int d=arr.length/2;d>0;d/=2){
            for (int i = d; i < arr.length; i++) {
                //插入排序
                int tmp=arr[i];//i4,j0,,d4
                int j=i-d;
                while (j>=0&&tmp<arr[j]){
                    arr[j+d] =arr[j];
                    j-=d;
                }
                arr[j+d] = tmp;
            }
            System.out.println(d+"的排序："+Arrays.toString(arr));
        }
    }
}
